#ifndef	__INCmd5h
#define	__INCmd5h

#ifdef __cplusplus
extern "C" {
#endif

#define A_UINT32 	unsigned int
	
struct MD5Context {
        A_UINT32 buf[4];
        A_UINT32 bits[2];
        unsigned char in[64];
};

void Dfu_MD5Init(struct MD5Context * ctx);
void Dfu_MD5Update(struct MD5Context *ctx, unsigned char *buf, unsigned len);
void Dfu_MD5Final(unsigned char digest[16], struct MD5Context *ctx);
void Dfu_MD5Transform(A_UINT32 buf[4], A_UINT32 in[16]);
void md5_calc(unsigned char *output, unsigned char *input, unsigned int inlen);

typedef struct MD5Context MD5_CTX;
#ifdef __cplusplus
};
#endif
#endif /* __INCmd5h */
